using System;
using System.Collections.Generic;
using System.Text;

namespace MapTestFramework.Common
{
    /// <summary>
    /// Provides data for the TestExecuting and TestExecuted events.
    /// </summary>
    public class TestEventArgs : EventArgs
    {
        #region Constructor And Initializing Members

        /// <summary>
        /// Initializes a new instance of the TestEventArgs class with the specifed 
        /// test name, source path, output path and expected path.
        /// </summary>
        /// <param name="testName">Name of the test.</param>
        /// <param name="inputPath">Path to the source file.</param>
        /// <param name="outputPath">Path to the output file.</param>
        /// <param name="expectedPath">Path to the expected file.</param>
        public TestEventArgs(string testName, string sourcePath, string outputPath, string expectedPath) : base()
        {
            m_TestName = testName;
            m_SourcePath = sourcePath;
            m_OutputPath = outputPath;
            m_ExpectedPath = expectedPath;
            return;
        }

        #endregion

        #region Public Members

        private readonly string m_ExpectedPath;
        private readonly string m_SourcePath;
        private readonly string m_OutputPath;
        private readonly DateTime m_StartDateTime = DateTime.Now;
        private readonly string m_TestName;

        /// <summary>
        /// Gets the path to the expected file.
        /// </summary>
        public string ExpectedPath
        {
            get { return m_ExpectedPath; }
        }
        /// <summary>
        /// Gets the path to the source file.
        /// </summary>
        public string SourcePath
        {
            get { return m_SourcePath; }
        }
        /// <summary>
        /// Gets the path to the output file.
        /// </summary>
        public string OutputPath
        {
            get { return m_OutputPath; }
        }
        /// <summary>
        /// Gets the date and time the test started.
        /// </summary>
        public DateTime StartDateTime
        {
            get { return m_StartDateTime; }
        }
        /// <summary>
        /// Gets the name of the test.
        /// </summary>
        public string TestName
        {
            get { return m_TestName; }
        }

        #endregion
    }
}
